package org.jeecg.common.mq.config;

import org.apache.activemq.command.ActiveMQQueue;
import org.jeecg.common.constant.MQConstant;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.jms.Queue;

/**
 * TODO:
 *
 * @author Zhang Hao yu
 * @date 2020/12/4 16:46
 */
@Configuration
public class ActiveMQBeanConfig {
    /**
     * TODO:定义es更新队列，用于更新es中的数据
     *
     *
     * @author ZhangHaoyu
     * @return javax.jms.Queue
     */
    @Bean
    public Queue queueEsUpdate() {
        return new ActiveMQQueue(MQConstant.PHIL_ES_UPDATE);
    }

    /**
     * TODO:用于订阅信息发送到数据库
     *
     *
     * @author ZhangHaoyu
     * @return javax.jms.Queue
     */
    @Bean
    public Queue queueTopicRedis() {
        return new ActiveMQQueue(MQConstant.PHIL_OPERATE_TOPIC_REDIS);
    }

    /**
     * TODO: redis更新队列
     *
     *
     * @author ZhangHaoyu
     * @return javax.jms.Queue
     */
    @Bean
    public Queue queueUpdateRedis() {
        return new ActiveMQQueue(MQConstant.PHIL_UPDATE_REDIS);
    }

    /**
     * TODO: 定义栏目订阅推送队列，文章推送
     *      因为并发，暂时废弃
     *
     *
     * @author ZhangHaoyu
     * @return javax.jms.Topic
     */
//    @Bean   //将主题对象交给spring管理
//    public Topic topicColumnPublish(){
//        return new ActiveMQTopic(MQConstant.PHIL_COLUMN_PUBLISH);
//    }


    @Bean
    public Queue test() {
        return new ActiveMQQueue(MQConstant.TEST);
    }
}
